// 在request/http.js中
import axios from "axios"
import qs from "qs"
import Vue from "vue"
import store from "../store/index.js"

let  peroc = ""   // eslint-disable-line no-unused-vars

// 开发环境
if(process.env.NODE_ENV === "development"){
  Vue.prototype.$pre = "http://localhost:3000"
  peroc = "http://localhost:8080"
}
// 生产环境
if(process.env.NODE_ENV === "production"){
  Vue.prototype.$pre = ""
  peroc = "http://localhost:3000"
}

// 请求拦截器
axios.interceptors.request.use(config=>{

  if(config.url !== "/api/userlogin"){
    config.headers.authorization = store.state.user.token
  }
  return config
})
// 响应拦截器
axios.interceptors.response.use(res=>{
  console.group("本次请求的路径是：" + res.config.url)
  console.log(res)
  console.groupEnd("拦截器结束")

  if(res.data.msg == "登录已过期或访问权限受限"){
    window.location = peroc = "/#/login"
  }


  return res
})


/* 
  get请求
    url   请求地址
    params  请求参数，对象类型
*/
export const get = (url,params={})=>{
  return new Promise((resolve,error)=>{
    axios.get(url,{
      params:params
    }).then(res=>{
      resolve(res)
    }).catch(err=>{
      error(err)
    })
  })
}

/* 
  post请求
    url   请求地址
    params  请求参数，对象类型
    isFile   是否包含文件，如果包含文件就传true，如果不包含文件就不用传
*/
export const post = (url,params={},isFile=false)=>{

  let data = null
  if(isFile){
    // 有文件
    data = new FormData()
    for(let i in params){
      data.append(i,params[i])
    }
  }else{
    // 无文件
    data = qs.stringify(params)
  }

  return new Promise((resolve,error)=>{
    axios.post(url,data).then(res=>{
      resolve(res)
    }).catch(err=>{
      error(err)
    })
  })
}